package GUI.Gestion;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;

import DataBase.DAO;

//import Modelo.BDlocal;

public class GUI_Gestion extends JPanel {

	private JTable table;
	private GUI_Gestion yo = this;
	private Tabla modelo;
	private Tabla modeloempleados;
	private Tabla modeloproductos;
	private Tabla modelocategorias;
	private Tabla modelocajas;
	private Tabla modeloproveedores;
	private JPanel _panelderecho;
	private Panel_empleado _panelEmpleado;
	private Panel_Cajas _panelCajas;
	private Panel_Categorias _panelCategorias;
	private Panel_Productos _panelProductos;
	private Panel_Proveedores _panelProveedores;
	private JPanel _panelbotons;
	private JButton btnEmpleados;
	private JButton btnCategorias;
	private JButton btnProductos;
	private JButton btnCajas;
	private JButton btnProveedores;
	//private BDlocal BaseDatos;
	private Connection BD;
	private DAO op;
	private String[] dtEMP;
	private String[] dtART;
	private String[] dtPRO;
	
	private fachada_gestion fachada_gestion;
	/**
	 * Launch the application.
	 */

	/**
	 * Create the frame.
	 */
	public GUI_Gestion(Connection con) {
		this.fachada_gestion = new fachada_gestion();
		//this.BaseDatos = BaseDatos;
		this.BD=con;
		op=new DAO();
		dtEMP=new String[6];
		dtART=new String[5];
		dtPRO=new String[4];
		setBackground(Color.GRAY);
		setForeground(Color.DARK_GRAY);
		this.set_panelderecho(new JPanel());
		setBounds(100, 100, 450, 300);

		this.setBorder(new EmptyBorder(5, 5, 5, 5));

		this.setLayout(new BorderLayout(0, 0));

		_panelbotons = new JPanel();
		_panelbotons.setBackground(Color.DARK_GRAY);
		this._panelbotons.setForeground(new Color(0, 0, 0));
		this.add(_panelbotons, BorderLayout.SOUTH);
		_panelbotons.setLayout(new GridLayout(0, 5, 0, 0));

		this.botones();
	
		setTable(new JTable());
		getTable().setAutoscrolls(false);
		modelo = new Tabla();
		

		this.add(getTable(), BorderLayout.CENTER);
		this.setVisible(true);

	}

	private void botones() {
		this.allModel();
		btnEmpleados = new JButton("Empleados");
		_panelbotons.add(btnEmpleados);
		btnEmpleados.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {

				yo.fachada_gestion.listenerBtnEmplds(yo,BD);
			}
		});

		btnCategorias = new JButton("Categorias");
		_panelbotons.add(btnCategorias);
		btnCategorias.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {


				// modelo.addRow(tetas);
				yo.fachada_gestion.listenerBtnCat(yo);
			}
		});

		btnProductos = new JButton("Productos");
		_panelbotons.add(btnProductos);

		btnProductos.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				

				// modelo.addRow(tetas);
				yo.fachada_gestion.listenerBtnArtic(yo,BD);

			}
		});

		btnCajas = new JButton("Cajas");
		_panelbotons.add(btnCajas);

		btnCajas.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				
				// modelo.addRow(tetas);
				yo.fachada_gestion.listenerBtnCajas(yo);
			}
		});

		btnProveedores = new JButton("Proveedores");
		_panelbotons.add(btnProveedores);

		btnProveedores.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
	

				yo.fachada_gestion.listenerBtnProved(yo,BD);

			}
		});

	}	
public void setInternalPanel(JPanel panel){
	
	
	
	
}

private void Modelempl(){
	
	String[] nombres = new String[6];
	nombres[0] = "id";
	nombres[1] = "Nombre";
	nombres[2] = "DIreccion";
	nombres[3] = "Telefono";
	nombres[4] = "Fecha Inicio";
	nombres[5] = "Rol";
	setModeloempleados(new Tabla());
	getModeloempleados().addColumn("id");
	getModeloempleados().addColumn("id");
	getModeloempleados().addColumn("id");
	getModeloempleados().addColumn("id");
	getModeloempleados().addColumn("id");
	getModeloempleados().addColumn("id");
	getModeloempleados().addRow(nombres);

	//dni,pass,nombre, rol, direccion, telefono, fechainicio, tienda
	String rollo2="select dni,nombre,direccion,telefono,fechainicio,rol from empleado";
	op.muestraTabla(rollo2, dtEMP,this.getModeloempleados(), BD);
	
	
	
}
private void Modelcajas(){
	
	String[] nombres = new String[2];
	nombres[0] = "ID Cajero";
	nombres[1] = "Num Cajero";
	modelocajas = new Tabla();
	modelocajas.addColumn("id");
	modelocajas.addColumn("id");
	modelocajas.addRow(nombres);
	/**if(this.BaseDatos.getNumCaj()!=1){
	for(int i=0;i<this.BaseDatos.getNumCaj();i++){
		nombres[0] = ""+this.BaseDatos.getCajas().get(i).getId();
		nombres[1] = ""+this.BaseDatos.getCajas().get(i).getNum_caja();
		this.getModeloempleados().addRow(nombres);
	}
}**/

}
private void Modelecate(){
	
	String[] nombres = new String[2];
	nombres[0] = "ID";
	nombres[1] = "Nombre";
	modelocategorias = new Tabla();
	modelocategorias.addColumn("id");
	modelocategorias.addColumn("id");
	modelocategorias.addRow(nombres);
	/**if(this.BaseDatos.getNumCat()!=1){
	for(int i=0;i<this.BaseDatos.getNumCat();i++){
		nombres[0] = ""+this.BaseDatos.getCategorias().get(i).getId();
		nombres[1] = this.BaseDatos.getCategorias().get(i).getNombre();


	this.getModeloempleados().addRow(nombres);
	}
	}**/
}
private void Modelprductos(){
	
	String[] nombres = new String[5];
	nombres[0] = "ID Producto";
	nombres[1] = "Nombre Producto";
	nombres[2] = "Marca Producto";
	nombres[3] = "Categoria";
	nombres[4] = "Precio";
	modeloproductos = new Tabla();
	modeloproductos.addColumn("id");
	modeloproductos.addColumn("id");
	modeloproductos.addColumn("id");
	modeloproductos.addColumn("id");
	modeloproductos.addColumn("id");
	modeloproductos.addRow(nombres);
	
	String rollo1="select id_articulo,nombre,marca,categoria,precio from articulo";
	op.muestraTabla(rollo1, dtART,this.getModeloproductos(),BD);
	
}
private void Modelprovdrs(){
	
	String[] nombres = new String[4];
	nombres[0] = "ID Proveedor";
	nombres[1] = "Nombre";
	nombres[2] = "Direccion";
	nombres[3] = "telefono";
	modeloproveedores = new Tabla();
	modeloproveedores.addColumn("id");
	modeloproveedores.addColumn("id");
	modeloproveedores.addColumn("id");
	modeloproveedores.addColumn("id");
	modeloproveedores.addRow(nombres);

	String rollo="select id_proveedor,nombre,direccion,telefono from proveedor";
	op.muestraTabla(rollo, dtPRO,this.getModeloproveedores(), BD);
	
}
	
private void allModel(){
	
	
	this.Modelcajas();
	this.Modelecate();
	this.Modelempl();;
	this.Modelprductos();
	this.Modelprovdrs();
	
}

public Tabla getModeloempleados() {
	return modeloempleados;
}

public void setModeloempleados(Tabla modeloempleados) {
	this.modeloempleados = modeloempleados;
}

public JTable getTable() {
	return table;
}

public void setTable(JTable table) {
	this.table = table;
}

public Panel_empleado get_panelEmpleado() {
	return _panelEmpleado;
}

public void set_panelEmpleado(Panel_empleado _panelEmpleado) {
	this._panelEmpleado = _panelEmpleado;
}

public JPanel get_panelderecho() {
	return _panelderecho;
}

public void set_panelderecho(JPanel _panelderecho) {
	this._panelderecho = _panelderecho;
}

public Tabla getModeloproductos() {
	return modeloproductos;
}

public void setModeloproductos(Tabla modeloproductos) {
	this.modeloproductos = modeloproductos;
}

public Tabla getModelocategorias() {
	return modelocategorias;
}

public void setModelocategorias(Tabla modelocategorias) {
	this.modelocategorias = modelocategorias;
}

public Tabla getModelocajas() {
	return modelocajas;
}

public void setModelocajas(Tabla modelocajas) {
	this.modelocajas = modelocajas;
}

public Tabla getModeloproveedores() {
	return modeloproveedores;
}

public void setModeloproveedores(Tabla modeloproveedores) {
	this.modeloproveedores = modeloproveedores;
}

public Panel_Cajas get_panelCajas() {
	return _panelCajas;
}

public void set_panelCajas(Panel_Cajas _panelCajas) {
	this._panelCajas = _panelCajas;
}

public Panel_Categorias get_panelCategorias() {
	return _panelCategorias;
}

public void set_panelCategorias(Panel_Categorias _panelCategorias) {
	this._panelCategorias = _panelCategorias;
}

public Panel_Productos get_panelProductos() {
	return _panelProductos;
}

public void set_panelProductos(Panel_Productos _panelProductos) {
	this._panelProductos = _panelProductos;
}

public Panel_Proveedores get_panelProveedores() {
	return _panelProveedores;
}

public void set_panelProveedores(Panel_Proveedores _panelProveedores) {
	this._panelProveedores = _panelProveedores;
}

public JPanel get_panelbotons() {
	return _panelbotons;
}

public void set_panelbotons(JPanel _panelbotons) {
	this._panelbotons = _panelbotons;
}


	}
